The present invention relates to packet switched telecommunications networks and more particularly to a system for correcting loss of data packets in such a network.
In a packet switched network, a message to be sent is divided into blocks, or data packets, of fixed or variable length. The packets are then sent individually over the network through multiple locations and then reassembled at a final location before being delivered to a user at a receiving end. To ensure proper transmission and re-assembly of the blocks of data at the receiving end, various control data, such as sequence and verification information, is typically appended to each packet in the form of a packet header. At the receiving end, the packets are then reassembled and transmitted to an end user in a format compatible with the user's equipment.
A variety of packet switching protocols are available, and these protocols range in degree of efficiency and reliability. Those skilled in the art are familiar, for instance, with the TCP/IP suite of protocols, which is used to manage transmission of packets throughout the Internet. Two of the protocols within the TCP/IP suite, as examples, are TCP and UDP.
TCP is a reliable connection-oriented protocol, which includes intelligence necessary to confirm successful transmission between sending and receiving ends in the network. According to TCP, each packet is marked in its header with a sequence number to allow the receiving end to properly reassemble the packets into the original message. The receiving end is then typically configured to acknowledge receipt of packets and expressly request the sending end to re-transmit any lost packets. UDP, in contrast, is an unreliable connectionless protocol, which facilitates sending and receiving of packets but does not include any intelligence to establish that a packet successfully reached its destination.
In the Internet, loss of entire packets has been found to occur at a rate of over 20% when the network is very congested. Typically, this packet loss occurs one packet at a time. However, at times, multiple sequential packets in a row may be lost. In either case, as those skilled in the art will appreciate, a connection-oriented protocol such as TCP introduces delay into packet transmission, due to its need to confirm successful transmission and to request retransmission of these lost packets. While this delay may not be a significant problem in the transmission of pure data signals (such as an e-mail message), the delay can unacceptably disrupt the transmission of real-time media signals (such as digitized voice, video or audio). Therefore, a need exists for a improved system of responding to and correcting packet loss errors.